let mongoose = require('./md')


// 用户
let userSchema = new mongoose.Schema({
    userName: String,
    passWord: String,
    phone: Number,//手机号
    iD: String,//身份证号
    isBanned: Boolean, //是否呗封禁账号
    myPublicationList: Array,//我的发布列表
    myOrderList: Array, //我的订单列表
    myFavoriteList: Array,//我的收藏列表
    imgUrl: String,//头像
})
// 游戏类型表
let shoopTypeSchema = new mongoose.Schema({
    Type: String,  // 游戏的类型   
    typeName: String, //游戏名称
    imgSrc: String,//类型图片
    Popularity: {
        type: Number,
        default: 0
    },//热门度
})

// 商品列表
let shoopListSchema = new mongoose.Schema({
    shoopType: String,//商品类型-游戏道具/账号/装备/角色/武器/卡牌/其他
    title: String,//商品标题
    imgSrc: Array,//(图片地址列表)
    label: Array, //（商品标签 幻神，黑骑士类似）
    price: Number,
    loginMethod: String,// (选择游戏登录方式，qq，手机号登录等)
    phone: String,//选填  （当发布账号时，选择qq登录的话，phone字段可以不用上传）
    userName: String,//（当发布账号时，选择手机号登录的话，user根passWord字段可以不用上传）
    passWord: String,//（当发布账号时，选择手机号登录的话，user根passWord字段可以不用上传）
    isChangeId: Boolean,// 是否可以更改qq游戏绑定身份信息，或更改绑定手机号
    operatingSystem: String,//操作系统 安卓/苹果/鸿蒙
    shelfOrNot: {
        type: Boolean,
        default: true
    }, //是否上架

    isSuccessfulTrade: {
        type: Boolean,
        default: false
    },//是否正在交易 （当有买家下单并且付款时候，需要将本字段该为false ，其他客户不可以下单此条商品）

    userId: { //商品发布人
        type: mongoose.Types.ObjectId,
        ref: "user"
    },
    typeId: { //商品类型
        type: mongoose.Types.ObjectId,
        ref: "shoopType"
    },
})

//订单列表 (买家下单时添加的一个集合)
let orderListSchema = new mongoose.Schema({
    shoopName: String, //商品名字
    orderCode: String, //订单编号   字符串 随机4位字母 + Date.now() 方式生成
    orderTime: Date,//下单时间  不按照付款时间来计算 按照点击购买时间计算
    myWhetherToMakePaymentOrNot: Boolean,//买家是否付款  当为true 时,需要修改商品表的isSuccessfulTrade字段为true
    isTransactionCompletion: Boolean, //是否交易完成  交易完成修改商品字段的shelfOrNot为false
    sId: {
        type: mongoose.Types.ObjectId,
        ref: "shoopList"
    }

})
// 聊天记录
let chatHistorySchema = new mongoose.Schema({
    // 发件人
    senderId: {
        type: mongoose.Types.ObjectId,
        ref: "user"
    },
    // 收件人
    recipientId: {
        type: mongoose.Types.ObjectId,
        ref: "user"
    },
    content: String,
    dateTime: Number
})

// sendrId==1|| sendId==2  && recipientId==1|| recipientId==2
let userModel = mongoose.model("user", userSchema, 'user')
let shoopTypeModel = mongoose.model("shoopType", shoopTypeSchema, 'shoopType')
let shoopListModel = mongoose.model("shoopList", shoopListSchema, 'shoopList')
let orderListModel = mongoose.model("orderList", orderListSchema, 'orderList')
let chatHistoryModel = mongoose.model("chatHistory", chatHistorySchema, 'chatHistory')
module.exports = {
    userModel,
    shoopTypeModel,
    shoopListModel,
    orderListModel,
    chatHistoryModel
}